Answering machines, voice mail, and e-mail delivery systems have been around for many years and are generally well-known in the art. More recently, there has been a proliferation of call forwarding systems. These systems, for example, might operate as follows: if a user does not answer the office telephone, the system switches the call to the user""s cellular line; if no answer is received on the cellular line, the call is switched to a pager.
Answering machine technology has also advanced. Some answering machines now permit the user to establish a series of call forwarding numbers to which messages left on the machine may be forwarded. These typically take the form of: 1) a CALLER leaving a message; 2) the answering machine calling the programmed number to which the USER has explicitly requested call be forwarded; and 3) when the forwarded phone is answered, the answering machine says, e.g., xe2x80x9cI have a message from USER.xe2x80x9d If USER is present, USER can enter its access code and retrieve the message.
This and other prior art systems suffer from two major deficiencies: 1) they do not and cannot make content and state based decisions on how an incoming event (be it a phone call, e-mail message or other type of communication), should be handled, and 2) they are not capable of handling translation between multiple media types in the event that the user is not readily reachable on the incoming media type.
As previously mentioned, prior art systems do not have the capability of making content-based decisions. At most, such systems allow a caller to, e.g., select a mailbox based on subject by pressing a key on a touch-tone keypad. Different mailboxes may have different priorities. However, nothing prevents a caller from accidentally or intentionally entering the message in a mailbox having an artificially high priority or incorrectly categorieed by subject. When this occurs, the user will be unnecessarily disturbed, since the system will blindly deliver the message in accordance with its preestablished protocol.
As to multiple media types, a media type consists of a transport type and a data type. If either the transport type or the data type are different, the media are considered different types. For example, phone and fax have the same transport type, but different data types. Thus, they are different media types. Additionally, within each media type, there are different channels. For example, different telephone numbers constitute different channels in a telephone system, and different e-mail addresses constitute different channels in that medium. The challenge is to deliver an incoming important event along a media type and channel such that the user receives enough of the event to act on it within the shortest time period while screening unimportant events so the user is not unnecessarily interrupted.
In view of the foregoing, it would be desirable to be able to provide a system which is capable of appropriately handling incoming events on a plurality of incoming media and forwarding those events based on content and/or state information to a user on a best of a plurality of outgoing media.
A system for handling incoming media events based on content and state information is disclosed. An interface which receives events transmitted via a plurality of media forwards such incoming events into an attribute extractor. The attribute extractor extracts one or more attributes from the event and passes those attributes to a characteristic accumulator. The attribute extractor may, for example, read the header of an e-mail event to determine its source or, for example, employ caller ID in conjunction with voice recognition to determine the identity of a caller.
The characteristic accumulator creates a characterization of an event on which a decision engine can base a decision of how the event should be handled. The characterization includes all extracted attributes as well as state information deemed relevant to such attributes. The decision engine will typically employ rule-based decision-making using the characterization as a starting point The decision unit should decide both whether the event should be forwarded and along what outgoing media type. If the outgoing media type is not the same as the incoming media type, appropriate translation is provided.